from rest_framework import serializers

from .models import Area


class AreaSerializer(serializers.ModelSerializer):
    """如果查所有省时,它带表省的序列化器
    如果查询单个省,此序列化器代表的是省里面的一个一个的市
    如果查询单个市时,此序列化器代表的是市里面的一个一个的区
    """
    class Meta:
        model = Area
        fields = ['id', 'name']


class SubsAreaSerializer(serializers.ModelSerializer):
    """此序列化只有在查询单一视图时才会使用,如果查省时,此序列器代表省,subs里面就装着省下面的所有市
    如果此序列化器代表的是单个市,那么subs就代表市下面的所有区县
    """
    subs = AreaSerializer(read_only=True, many=True)
    class Meta:
        model = Area
        fields = ['id', 'name', 'subs']